As network connectivity increases, network users will gain productivity by using collaborative applications or workspaces that exchange audio and video transmissions. Network protocols that integrate devices such as printers, scanners, and workstations over a network are well known. Operational transparency across physical networks and different device platforms provides users with increasingly integrated and transparent system environments for increased collaboration. Physical networks include telephone lines, twisted pair wires, coaxial cables, microwaves, infrared, and/or other data links. Device platforms include centralized computer systems or distributed client-server computer systems.
By way of background, system user interfaces operating on device platforms are disclosed in U.S. Pat. Nos. 5,072,412 and 5,107,443. Specifically, these patents relate to workspaces having an object-based user interface that appears to share windows and other display objects. Also of interest is U.S. Pat. No. 5,008,853 disclosing shared structured data by multiple users across a network. In such systems, a display system object can be linked to several workspaces giving workspaces the appearance of shared windows. These workspaces can be navigated through using metaphors such as moving from one room to another through doors. Additionally, these workspaces can be shared by groups of users over a network. Groupware systems that provide toolkits for building specific shared applications such as text editors or drawing editors are disclosed by Hill et al. in xe2x80x9cThe Rendezvous Language and Architecture,xe2x80x9d Communications of the ACM, January, 1993, Vol. 36, No. 1.
An example of a collaborative system is a game known as xe2x80x9cMulti-User Dungeonsxe2x80x9d (MUDs) which is disclosed by Curtis et al. in xe2x80x9cMudding: Social Phenomena in Text-Based Virtual Realities,xe2x80x9d Proceedings of the 1992 Conference on Directions and Implications of Advanced Computing, Berkeley, May 1992, and by Curtis et al. in xe2x80x9cMUDs Grow Up: Social Virtual Reality in the Real World,xe2x80x9d Proceedings of the 1994 IEEE Computer Conference, pp. 193-200, January 1994, the background of which is incorporated herein by reference. MUDs are programs that accept network connections from multiple users simultaneously while providing access to a shared text-based database of virtual xe2x80x9croomsxe2x80x9d, xe2x80x9cexitsxe2x80x9d, and other objects. Network users browse and manipulate the database from inside the rooms, seeing only those objects that are in the same rooms or moving between rooms via exits that connect them. MUDs, therefore, provide a virtual reality of electronically-represented xe2x80x9cplacesxe2x80x9d or xe2x80x9cnetwork placesxe2x80x9d that users can visit. The popularity of MUDs is believed to exist because of the social quality of the system and the richness of the metaphor the system employs. In effect, the system makes use of the company of other people while using intuitive and appealing real life metaphors.
Collaborative systems integrating audio and video data are known. A manner in which a phone system can be connected to a virtual system on a network is disclosed by Zellweger et al. in xe2x80x9cAn Overview of the Etherphone System and its Applications,xe2x80x9d Proceedings of the 2nd IEEE Conference on Computer Workstations, March 1988. Specifically, Zellweger et al. discloses the concept of using encryption keys that are administered by a server. The concept of a server managing the connection state is disclosed by the Bellcore Information Networking Research Laboratory in xe2x80x9cThe Touring Machine System,xe2x80x9d Communications of the ACM, January 1993, Vol. 36, No. 1. The ATandT Globalyst(trademark) 630 Vistium(trademark) shared software and personal video software permits up to six people in different locations to collaborate on the same document at the same time while video conferencing. A system that integrates text at different levels is known as xe2x80x9cInternet Relay Chatxe2x80x9d (IRC), as disclosed by Pioch et al. in xe2x80x9cA Short IRC Primerxe2x80x9d, Feb. 28, 1993 (available by FTP at cs.bu.edu/irc/support). IRC is a text-based multi-user, multi-channel, client-server program that enables both public and private text-based conversations over a network.
The aforementioned systems, however, do not provide facilities for controlling the distribution and recording of real-time audio and video streams while simultaneously providing users with an understanding and control over the destination of their audio and video streams. Accordingly it would be desirable to provide a collaborative environment that integrates shared and persistent objects over long periods of time through the use of xe2x80x9cnetwork placesxe2x80x9d. Each xe2x80x9cnetwork placexe2x80x9d provides users with the flexibility to control the extent of their participation with other users. It is an object of the present invention, therefore, to provide an integrated system with audio and video data that supports long-term collaboration between network users. It is another object of the present invention that the audio and video data shared between users is secure. It is yet another object of the invention to provide different levels of communication between users.
In addition, the collaborative environment embodying the present invention, similar to the rooms environment in MUDs, is not grounded in the physical world. The present invention uses metaphors such as virtual rooms to offer clues about the kind of behavior that is appropriate in a particular room. Specifically, different virtual rooms define different social protocols. For example, discussions in a conference room are more formal than discussions taking place in a lounge. In addition, the present invention expands the room metaphor to include virtual fax machines, tape recorders, and messaging systems. The present invention is also directed at a collaborative environment in which users are not able to access each other at will. For example, each user provides information to other users to indicate whether each user can be interrupted. In effect, communication using audio and video data is advantageously used in the collaborative environment to increase productivity between network users in the collaborative environment.
In accordance with one aspect of the invention, there is provided a method for dynamically controlling multiple channels of data in a multi-user collaborative system having a central server connected to a plurality of client workstations over a network. The method includes the steps of: displaying at each client workstation a view on a room object stored in an object database on the central server, the room object being associated with a first channel stored in the object database; providing, at each client workstation, visual identification of each user object located in a virtual room, each pair of user objects located in the virtual room having associated therewith a whisper channel; initiating, at a first client workstation, broadcast of data to each user object located in the virtual room by selecting a first interface element displayed at the first client workstation, the first interface element being associated with the room object and directing data to the first channel; and interrupting, at the first client workstation, broadcast of data transmitted over the first channel by selecting a second interface element displayed at the first client workstation, the second interface element being associated with a user object at a second client workstation, the interrupting step initiating broadcast of data at the first client workstation to the whisper channel associated with the user object at the second client workstation.
In accordance with another aspect of the invention, there is provided in a network interconnecting a central server and a plurality of client workstations adapted to sending and receiving data, a method for coordinating communication of data between each of the plurality of client workstations. The method includes the steps of associating a first client workstation with a device, the device providing multimedia input at the first client workstation; defining a first transmitter in a memory of the central server for transmitting data from the device over a first channel; defining a first receiver in the memory of the central server for receiving audio signals over the first channel at a second client workstation; providing a first encryption key to the first client workstation and the second client workstation to provide secure communication of data over the first channel; defining, subsequent to the providing step, a second receiver in the memory of the server for receiving audio signals over the first channel at a third client workstation; and altering, in response to the defining step, the first encryption key provided to the first client workstation and the second client workstation, the altering step providing a second encryption key to the first client workstation, the second client workstation, and the third client workstation for communication of data over the first channel so that communication broadcast over the first channel is secure.
In accordance with yet another aspect of the invention, there is provided a method of coordinating multicast audio data between a plurality of client workstations connected over a network, each client workstation having a point to point connection with a central server. The method includes the steps of displaying a communicator at a client workstation, the communicator providing a first user interface element to direct audio data from an audio device at the client workstation to a first set of client workstations and a second user interface element to direct audio data from the audio device to a second set of client workstations, the second set of client workstations being a sub-set of the first set of client workstations; defining, in a memory of the central server, a public channel for transmission of audio data to the first set of client workstations and a private channel for transmission of audio data to the second set of client workstations; receiving, at the central server, a first user signal from the communicator at the client workstation to direct audio data from the audio device to the public channel; providing with the central server, in response to the first user signal, a first encryption key to the client workstation, the first encryption key enabling transmission of audio data between the client workstation and the first set of client workstations over the public channel; receiving, at the central server, a second user signal from the communicator at the client workstation to direct audio data from the audio device to the private channel; providing with the central server, in response to the second user signal, a second encryption key to the client workstation, the second encryption key enabling transmission of audio data between the client workstation and the second set of client workstations over the private channel; and toggling, at the client workstation, between the first encryption key and the second encryption key in response to a third user signal from the communicator to terminate transmission of audio data from the audio device to the private channel and the second user signal, the toggling step being performed without the client workstation communicating with the central server so that the client workstation minimizes latency perceived at the communicator by reducing communication between the client workstation and the central server.
In accordance with a further aspect of the invention, there is provided in a network interconnecting a central server with a memory and a plurality of client workstations adapted to broadcasting data, a system for coordinating communication of data between each of the plurality of client workstations. A device receives data at a first client workstation. A first transmitter coordinates transmission of data from the device over a channel, the first transmitter being stored in the memory of the central server. A first receiver coordinates receipt of data over the channel at a second client workstation, the first receiver being stored in the memory of the central server. Means provide a first encryption key to the first client workstation and the second client workstation for secure broadcast of data over the channel. Means provide a second encryption key to the first client workstation and the second client workstation in response to a third client workstation storing in the memory of the central server a second receiver for coordinating receipt of data over the channel at the third client workstation, the providing means ensuring secure broadcast of data over the channel to the first client workstation, the second client workstation, and the third client workstation.
In accordance with yet another aspect of the invention, there is provided in a networked computing environment interconnecting a plurality of client workstations and a central server, the plurality of client workstations communicating directly with the central server, each of the plurality of client workstations broadcasting data to sets of the plurality of client workstations, a coordination system for providing dynamic interconnection of streams of data between each of the plurality of client workstations. An object database, resident in a memory of the central server, for storing a plurality of database objects, the object database having stored therein a room object with a channel associated therewith. A first user object being stored in the object database and having associated therewith a first client workstation, the first user object having a device for providing multimedia input at the first client workstation, the device directing multimedia input to a transmitter aiming at the channel. A second user object being stored in the object database and having associated therewith a second client workstation, the second user object having a receiver directed at the channel for receiving data broadcast over the channel. A key manager object being stored in the object database and communicating with the first user object and the second user object, the key manager providing coordination information to enable the first user object and the second user object to broadcast data between the first client workstation and the second client workstation over the channel.